.\" -*- nroff -*-
.TH ipack 1 2002-03-24 Exult

.SH NAME
ipack \- Manipulate Flex files containing Shapes

.SH SYNOPSIS
.B ipack -c
.I SCRIPT

.B ipack -x
.I SCRIPT

.B ipack -u
.I SCRIPT

.SH DESCRIPTION
Flex files containing Shapes are used for the storage visual elements
by the games
.I Exult
supports. While
.BR expack (1)
can operate on such files, using
.B ipack
is more comfortable. It can extract images from the Flex file
directly into PNG-format, and create or update Flex files from a list
of PNG files.

The first parameter determines the mode of operation:

.TP
.BR -c " Creation"
New Flex and palette files are created according to the instructions
contained in the
.I SCRIPT
file.

.TP
.BR -u " Update"
Works like Creation, but updates an existing Flex file.

.TP
.BR -x " Extraction"
The contents of the Flex file described in the
.I SCRIPT
file are extracted as PNG is dissected into its contents, as described in this script file.

.SS Script File Format
Empty lines, and lines starting with a pound sign
.RB ( # )
are ignored.

The names of the associated Flex archive and palette files are
given in lines containing optional whitespace, one of the tokens
.BR archive " or " palette ,
whitespace, and the filename.

Other lines define one shape each, and must begin with an image slot
number, followed by a slash
.RB ( / ),
the number of frames, a colon
.RB ( : ),
and finally the PNG file specification.
The numbers may be given either in
decimal, in octal prefixed with
.BR 0 ;
or in hexadecimal prefixed with
.BR 0x .
The file specification consists of the filename
.IR PREFIX ,
optionally
followed by a number and direction in brackets, optionally followed by
whitespace and the word
.BR flat .

Per default, each shape corresponds to a number of PNG files (one for
each frame) named
.IB PREFIXnn .png
with
.I nn
replaced by the frame number. If the optional bracket expression is
used in the specification the Shape corresponds to a single PNG file
instead. This file contains all frames, each of which is 8 by 8 pixels
in size, arranged next to each other in a rectangular grid. The number
in the bracket expression gives the size of this grid in the direction
indicated. The direction can be either
.B down
or
.BR across .

.SH EXAMPLES
.TP
.B ipack -c island.scr
Creates a Flex file and a palette file as specified by
.BR island.scr .

.TP
.B ipack -x island.scr
Extracts all components described in
.B island.scr
from the Flex file given therein.

.SS Example script
# script file for island.flx
.br
archive island.flx
.br
# put the palette into this file
.br
palette island.pal
.br
# the zeroth image has 32 frames in the files
.br
# zero00.png to zero31.png
.br
0/32:zero
.br
# image 5 consists of 22 frames stored in file
.br
# five.png in a grid 5 frames across (which means
.br
# 5 rows of which the last holds only 2 frames)
.br
5/22:five(5 across) flat
.br
# image 4 consists of 12 frames stored in file
.br
# four.png in a 3 by 4 grid
.br
4/12:four(4 down) flat
.br
# images 1 to 3 are unspecified

.SH BUGS
Tiled Shapes are currently extracted into multiple PNG files, not a
single file as expected during Create/Update.

.SH AUTHOR
This manpage was written by Robert Bihlmeyer. It may be freely
redistributed and modified under the terms of the GNU General Public
License version 2 or higher.

.SH SEE ALSO
.BR expack "(1), " exult (6)

